import axios from "axios";
import { useUserStore } from "@/store/user";
import { ElMessage } from 'element-plus'
import router from "../router/index";
console.log(router);
const httpClient = axios.create({
    baseURL:process.env.VUE_APP_SERVER,
    timeout:30000
})

httpClient.interceptors.request.use(config => {
    let userInfo = JSON.parse(localStorage.getItem("userInfo") || '{}');
    if(userInfo.accessToken){
        config.headers.Authorization  = "Bearer " +  userInfo.accessToken;
    }
    return config
}, error => {
    console.log(error);
    Promise.reject(error);
})

// 响应拦截器
httpClient.interceptors.response.use(
  response => {
    // 对响应数据做处理，例如只返回data部分
    const res = response.data;
    console.log(res)
    // 如果返回的状态码为200，说明成功，可以直接返回数据
    if (res.code === 200) {
      return res.data;
    }else {
      // 其他状态码都当作错误处理
      // 可以在这里对不同的错误码进行不同处理
      ElMessage.error(res.msg)
      // return Promise.reject({
      //   message: res.msg || 'Error',
      //   status: res.code
      // });
    }
  },
  error => {
    // 对响应错误做处理
    console.log(error.status)
    if(error.status === 401) {
      localStorage.clear();
      console.log(router);
      router.push({ path: '/login' });
      ElMessage.error("登录已过期，请重新登录");
    }
    // return Promise.reject(error);
  }
);

export default httpClient;